home *** CD-ROM | disk | FTP | other *** search
- /**************************
- Digg Sidebar
- By Neo101
- Version 1.0.0
- **************************/
-
- checkSettingsFile()
-
- var itemsOnPage = parseInt( readSetting('itemsOnPage', '10') )
-
- var categoryFeed = readSetting('categoryFeed', 'containertechnology.xml')
- var categoryUpcomingFeed = readSetting('categoryUpcomingFeed', 'containertechnology.xml')
- var category = readSetting('category', 'technology')
- var categoryUpcoming = readSetting('categoryUpcoming', 'technology')
- var showLoadingMessage = readSetting('showLoadingMessage', '1')
-
- var loadedUpcoming = false
-
- var popular = new Array()
- var upcoming = new Array()
- var searchResults = new Array()
-
- var element
- var start
- var xmlhttp
-
- var feeds = {'technology':
- ['containertechnology', 'indexapple', 'indexdesign', 'indexgadgets', 'indexhardware',
- 'indextech_news', 'indexlinux_unix', 'indexmods', 'indexprogramming', 'indexsecurity',
- 'indexsoftware', 'indextech_deals'],
- 'science':
- ['containerscience', 'indexspace', 'indexenvironment', 'indexhealth', 'indexgeneral_sciences'],
- 'world_business':
- ['containerworld_business', 'indexbusiness_finance', 'indexpolitics', 'indexpolitical_opinion',
- 'indexworld_news', 'indexoffbeat_news'],
- 'sports':
- ['containersports', 'indexbaseball', 'indexbasketball', 'indexextreme_sports', 'indexfootball',
- 'indexgolf', 'indexhockey', 'indexmotorsport', 'indexsoccer', 'indextennis', 'indexother_sports'],
- 'videos':
- ['containervideos', 'indexvideos_animation', 'indexvideos_comedy', 'indexvideos_educational',
- 'indexvideos_gaming', 'indexvideos_music', 'indexvideos_people', 'indexvideos_sports'],
- 'entertainment':
- ['containerentertainment', 'indexcelebrity', 'indexmovies', 'indexmusic', 'indextelevision'],
- 'gaming':
- ['containergaming', 'indexgaming_news', 'indexplayable_web_games']
- }
-
-
- window.onload = function(){
- viewPopularFeed()
-
- setSelectBox('category', 'category')
- setSelectBox('categoryUpcoming', 'categoryUpcoming')
- setSubCategory('subCategoryDiv', category, categoryFeed)
- setSubCategory('subCategoryUpcomingDiv', categoryUpcoming, categoryUpcomingFeed)
- }
-
-
- function viewPopularFeed(){
- var url = 'http://digg.com/rss/' + categoryFeed
- element = 'popular'
- start = 0
- loadXMLDoc(url, onResponseView)
-
- if(showLoadingMessage == '1'){
- document.getElementById( 'popular' ).insertAdjacentHTML('afterBegin', '<div class=loading>Loading...</div>')
- }
- }
-
-
- function viewUpcomingFeed(){
- var url = 'http://digg.com/rss/' + categoryUpcomingFeed
- element = 'upcoming'
- start = 0
- loadXMLDoc(url, onResponseView)
-
- if(showLoadingMessage == '1'){
- document.getElementById( 'upcoming' ).insertAdjacentHTML('afterBegin', '<div class=loading>Loading...</div>')
- }
- }
-
-
- function search(){
- var keywords = document.getElementById('keywords').value
- if(keywords == ''){
- document.getElementById('searchResults').innerHTML = 'Please enter a keyword!'
- return
- }
- var area = 'all'
- var type = 'both'
- var age = 'all'
- var url = 'http://digg.com/rss_search?area=' + area + '&type=' + type + '&age=' + age + '&search=' + keywords
- element = 'searchResults'
- start = 0
- document.getElementById('searchResults').innerHTML = 'Loading....<br>This could take a while...'
- loadXMLDoc(url, onResponseView)
- }
-
-
- function loadXMLDoc(url, stateChange){
- xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
- xmlhttp.onreadystatechange = stateChange;
- xmlhttp.open("GET", url, true);
- xmlhttp.setRequestHeader("User-Agent","Maxthon Digg Sidebar 1.0")
- xmlhttp.send(null)
- }
-
-
- function checkReadyState(obj){
- if(obj.readyState == 4){
- if(obj.status == 200 || obj.status == 201){
- return true;
- }
- else{
- showError(obj.status + ' ' + obj.responseText);
- }
- }
- }
-
-
- function onResponseView(){
- if( ! checkReadyState(xmlhttp) ){
- return
- }
-
- var responseXML = xmlhttp.responseXML
-
- if(responseXML == null){
- showError('Error 212: Could not parse feed <br>Make sure Digg is working')
- return
- }
-
- var response = '<ul>'
-
- var rssFeeds = new Array()
-
- items = responseXML.getElementsByTagName("item")
-
- if(items && items.length != 0 ){
- for(var j=0; j < items.length; j++) {
- addFeedItem(items[j], rssFeeds)
- }
- }
- else{
- response += '<b>Nothing found</b>'
- }
-
- response += writeFeedHtml( rssFeeds )
-
- document.getElementById(element).innerHTML = response
-
- eval( element + ' = rssFeeds ')
-
- createNextPreviousLinks()
-
-
- }
-
-
- function writeFeedHtml( array){
- var response = '<ul>'
-
- for(var i=0; i<array.length && i<itemsOnPage; i++){
- var item = array[i]
- response += '<li>'+
- '<a href="' + item.link + '" target=_blank class=title title="' + item.tooltip + '">' + item.title + '</a>' +
- //'<h3 onclick="expandCollapse(this)">' + item.title + '</h3>' +
- //'<div style="display:none">' + item.tooltip + '</div>'
- '<\/li>'
- }
- response += '<\/ul>'
-
- return response
- }
-
-
- function addFeedItem( item , array){
- var title = ''
- var link = ''
- var description = ''
- var pubDate = ''
- var diggCounter = ''
- var diggCategory = ''
- var diggCommentCount = ''
-
- var nodes = item.childNodes
-
- for(var i=0; i < nodes.length; i++){
- var tagName = nodes(i).tagName
- var tagText = nodes(i).text
- if(tagName=='title'){
- title = replacer(tagText)
- }
- else if(tagName=='link'){
- link = tagText
- }
- else if(tagName=='description'){
- description = replacer(tagText)
- }
- else if(tagName=='pubDate'){
- pubDate = replacer(tagText)
- }
- else if(tagName=='digg:diggCount'){
- diggCounter = replacer(tagText)
- }
- else if(tagName=='digg:category'){
- diggCategory = replacer(tagText)
- }
- else if(tagName=='digg:commentCount'){
- diggCommentCount = replacer(tagText)
- }
- }
-
- var tooltip = description
- tooltip += '\nDate: ' + pubDate
- if(diggCounter != ''){
- tooltip += '\nDigg Count: ' + diggCounter
- }
- if(diggCommentCount != ''){
- tooltip += '\nDigg Comment Count: ' + diggCommentCount
- }
- tooltip += '\nDigg Category: ' + diggCategory
-
-
- if(title != '' && link != ''){
- array.push( {'title':title,
- 'link':link,
- 'description':description,
- 'tooltip':tooltip,
- 'pubDate':pubDate,
- 'diggCounter':diggCounter,
- 'diggCategory':diggCategory
- } )
- }
- }
-
-
- function createNextPreviousLinks(){
- var next = start + itemsOnPage
- var previous = start - itemsOnPage
-
- var nextPreviousHTML = ''
-
- if( previous >= 0 ){
- nextPreviousHTML += '<a href="javascript:showFeedPart(\'' + element + '\', ' + previous + ')" class=prevNext>« Previous</a>'
- }
- if( previous >= 0 && next < 40 ){
- nextPreviousHTML += '<span style="width:30px"></span>'
- }
- if( next < 40 ){
- nextPreviousHTML += '<a href="javascript:showFeedPart(\'' + element + '\', ' + next + ')" class=prevNext>Next »</a>'
- }
-
- document.getElementById(element + 'NextPreviousHead').innerHTML = nextPreviousHTML
- document.getElementById(element + 'NextPreviousBottom').innerHTML = nextPreviousHTML
- }
-
-
- function showFeedPart(element, start){
- eval('var array = ' + element)
- top.start = start
- top.element = element
- array = array.slice(start,start + itemsOnPage)
-
- var response = '<ul>'
- response += writeFeedHtml( array )
- response += '</ul>'
-
- document.getElementById(element).innerHTML = response
-
- createNextPreviousLinks()
- }
-
-
- function replacer(s){
- return s.replace(/&/g,'&').replace(/"|"/g,'');
- }
-
-
- function setSelectBox(id, feed){
- var selectElement = document.getElementById(id)
- for(var i=0; i<selectElement.options.length; i++){
- if( eval('selectElement.options[i].value.search(' + feed + ') != -1') ){
- selectElement.selectedIndex = i
- }
- }
- }